# -*- coding: utf-8 -*-
"""
Created on Sun Aug 20 15:16:32 2023

@author: skunk69
"""

import json

chinese_name = u'目标追求的入世出世量表'
english_name = 'Mundane and Transcendence for Goal Pursuit Scale'
abbreviation = 'MTGPS'
category = u'人生价值、态度量表'

outline = u"""入世是对社会现实的肯定与投入，出世是对社会现实的否定与超越。入世、出世心理作为动机系统左右人们的心理活动和行为方式，入世包含激发动机、实现目标、满足需要等心理过程，集中表现为积极追求目标，出世包括减弱甚至消除动机、看淡目标、顺应自然等心理过程，集中表现为淡泊名利。入世出世心理是相对独立的成分，入世心理的强弱并不必然意味着出世心理的多寡，它们既可以在一定条件下相互排斥，也可以在一定条件下彼此共存。入世、出世心理的本质是目标追求的态度和方式，离开了目标追求就无所谓入世和出世，因此，可以把它们作为目标追求心理加以研究。
《目标追求的入世出世量表》由杨宏飞于2006年编制。量表包括入世和出世两个因子，前者包括积极追求目标和在意成败两个方面，后者包括用平常心对待成败和降低要求两个方面。"""

instruction = u"""亲爱的同学，您好！列在下面的是一些关于个人特点或特质的句子。阅读每个条目，决定你同意或不同意的程度。"""

with open('MTGPS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key.strip()] = value.strip()

reverse_items = []
scales = [u'拼搏精神',u'在乎结果',u'平常心',u'低要求']
scales_items = [
    [4,5,7,10,11,17],# 拼搏精神
    [1,6,9,12],# 在乎结果
    list(range(13,17))+[18],# 平常心
    [2,3,8],# 低要求
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,19)}
print(f'complementary set= {check_set}')

factors = [u'入世',u'出世']
factors_scales = [
    scales[0:2],
    scales[2::]
    ]
rating = u'非常不同意 不同意 有点不同意 中立 有点同意 同意 非常同意'.split()
score_rules = list(range(1,8))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《目标追求的入世出世量表》属于一个自评量表。"""

reliability = u"""正式样本来自于高校大学生群体。入世分量表10个条目与其总分相关在0.467~0.628，出世分量表8个条目与其总分相关在0.453~0.656，且P<0.01。
各量表的α系数在0.6~0.758，分半信度在0.670~0.762，重测信度在0.607~0.731。"""
validity = u"""在结构效度方面，采用主成分分析方法进行探索性因素分析，得到了四个因子模型，进行验证性因素分析，证明了四因子模型的稳定性。
内容效度可以用各分量表之间的相关来考察。入世、出世分量表和因素之间的相关系数证明了该量表具有较好的内容效度。
效标效度包括聚合效度和区分效度。选取生活满意度问卷、自尊量表、抑郁自评量表和大五人格量表作为效标，计算出了它们之间的相关系数。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""将各维度题目相加得到各维度分，由各维度分得到相应的因子分，所有18个条目得分之和即为该量表的总分。"""

applications = u"""《目标追求的入世出世量表》具有较好的信效度，可以用于大学生目标追求相关研究，能否用于大学生以外的人群还需要进一步考察。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)